home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 2 / Tech Arsenal 2 (Arsenal Computer).iso / casm / ctc0010.lst < prev    next >
File List  |  1994-08-01  |  73KB  |  1,068 lines

  1.                         C Set ++ Compiler Version 2.0
  2.                                  Fixes List
  3.                         -----------------------------
  4. *******************************************************************************
  5. *                                                                             *
  6. *  This CSD contains fixes that are common to C/C++ Tools Version 2.0 and     *
  7. *  Version 2.01.  Notwithstanding the version statements contained in the     *
  8. *  files of this CSD, this is not an upgrade of Version 2.0 to Version 2.01.  *
  9. *                                                                             *
  10. *  The code to which you have access is determined by the version of the      *
  11. *  software to which you are licensed.                                        *
  12. *                                                                             *
  13. *******************************************************************************
  14. ===============================================================================
  15.                     CTC0010 is informal Corrective Service
  16. *******************************************************************************
  17. FIX/APAR  COMPONENT  PROBLEM_DESCRIPTION
  18. -------------------------------------------------------------------------------
  19. PJ14307   BE         A dangling assignment to a floating point parameter inside
  20.                      a function can cause a floating point stack overflow if
  21.                      called often enough
  22. -------------------------------------------------------------------------------
  23. PJ14318   BE         This fix will correct a boundary problem that occurs when
  24.                      compiling with option /Gt+ if your program contains static
  25.                      data objects exactly equal to 64K in size. The problem
  26.                      does not occur when option /Gt- is specified.
  27. -------------------------------------------------------------------------------
  28. PJ14309   BE         Fixed a register problem that may occur when using _alloca
  29.                      with optimization.
  30. -------------------------------------------------------------------------------
  31. PJ14310   BE         A floating-point parameter for a function call could be
  32.                      set up incorrectly if the call is the last operation in a
  33.                      function (the tail call optimization).
  34. -------------------------------------------------------------------------------
  35. PJ14311   BE         Storing a char into an int and then later storing the int
  36.                      back into the char could, in very rare circumstances,
  37.                      produce incorrect code.
  38. -------------------------------------------------------------------------------
  39. PJ14312   BE         Nested for loops in which the iteration variables are
  40.                      members of the same structure may cause incorrect code
  41.                      generation.
  42. -------------------------------------------------------------------------------
  43. PJ14313   BE         Floating-point parameters may be left on the NPX register
  44.                      stack if there is an "if {...}" immediately above a "for
  45.                      (;;)" loop near the start of a function. This can later
  46.                      result in a floating point stack overflow exception.
  47. -------------------------------------------------------------------------------
  48. PJ14314   BE         An internal problem could result in a compile-time
  49.                      exception when processing a function with floating-point
  50.                      parameters.
  51. -------------------------------------------------------------------------------
  52. PJ14315   BE         Calling a function with two or more similar aggregate
  53.                      parameters could result in incorrect code generation.
  54. -------------------------------------------------------------------------------
  55. PJ14316   BE         Incorrect code could be generated for 16-bit operations
  56.                      that use the BP register when optimizing code without the
  57.                      /Op- compile parameter also specified.
  58. -------------------------------------------------------------------------------
  59. PJ14317   BE         If a conditional break inside an infinite loop jumps to a
  60.                      return, static variables used in the loop may not be
  61.                      correct at the return.
  62. -------------------------------------------------------------------------------
  63. QUAL-IMP  BE         Accessing an int as a bitfield structure has undefined
  64.                      behaviour according to the ANSI C standard.  However, the
  65.                      behaviour has been changed so that it is more in line with
  66.                      "intuitively obvious" behaviour.
  67. -------------------------------------------------------------------------------
  68. PJ14424   BE         In very rare circumstances, incorrect code may be
  69.                      generated when the only use of a parameter is a copy to a
  70.                      local variable.
  71. -------------------------------------------------------------------------------
  72. QUAL-IMP  BE         Division and remainder operations that conditionally
  73.                      execute within a loop could be moved outside of the loop,
  74.                      perhaps causing unexpected divide-by-zero exceptions.  (a
  75.                      result of the invariant code motion optimizations)
  76. -------------------------------------------------------------------------------
  77. PJ14579   BE         Under rare circumstances, due to an internal problem,
  78.                      compiling a large C++ module with /O+ /Ti+ can cause a
  79.                      compile-time exception.
  80. -------------------------------------------------------------------------------
  81. QUAL-IMP  C++FE      The compiler was not restricting the change of char to
  82.                      signed or unsigned char during integral promotions only.
  83.                      They are three distinct types.
  84.                       Note:  This fix may cause code that previously compiled
  85.                      cleanly to produce errors.  It is simply the compiler
  86.                      detecting an error that it wasn't detecting previously.
  87. -------------------------------------------------------------------------------
  88. PJ14428   C++FE      When a variable is initialized , any temporaries that are
  89.                      created in the initializer expression should have their
  90.                      destruction delayed until the end of the block.  For a
  91.                      reference variable to a ternary expression this is not the
  92.                      case and the destructors are being called too soon.
  93. -------------------------------------------------------------------------------
  94. PJ14431   C++FE      Compiler traps while generating a message for an
  95.                      inaccessible constant expression in a switch statement.
  96. -------------------------------------------------------------------------------
  97. QUAL-IMP  C++FE      Compiler may trap when generating the error message
  98.                       EDC3004:  "{" statement is not allowed in this scope.
  99. -------------------------------------------------------------------------------
  100. QUAL-IMP  C++FE      The compiler issues an invalid error message for an
  101.                      unrecognized type when the symbol is actually a template
  102.                      argument T.
  103. -------------------------------------------------------------------------------
  104. QUAL-IMP  C++FE      The compiler generates an error when trying to pass a
  105.                      array argument to a class template that takes a char *
  106.                      arg.
  107. -------------------------------------------------------------------------------
  108. QUAL-IMP  C++FE      A declaration without a type specification causes the C++
  109.                      compiler front end to trap when generating an error
  110.                      message.
  111. -------------------------------------------------------------------------------
  112. QUAL-IMP  C++FE      The C++ compiler front end traps when compiling a
  113.                      statement of the form:
  114.                       <function typedef> <_Optlink specifier> <function name>
  115.                      (<empty argument list>)
  116. -------------------------------------------------------------------------------
  117. PJ14433   C++FE      The C++ compiler is restricting the use of:
  118.                         #pragma comment(user,"..")
  119.                       It can only occur once in a source file and must appear
  120.                      before any C++ statements.
  121. -------------------------------------------------------------------------------
  122. PJ14434   C++FE      The compiler is not generating a temp when passing an
  123.                      array to a function that takes a const char * const &
  124.                      argument.  This results in a bad address being passed to
  125.                      the function.
  126. -------------------------------------------------------------------------------
  127. QUAL-IMP  C++FE      When a nested type that is a typedef is used as a base
  128.                      class the compiler checks the access of the target of the
  129.                      typedef instead of the typedef name and an invalid access
  130.                      error is generated.
  131. -------------------------------------------------------------------------------
  132. QUAL-IMP  C++FE      The C++ language specifies that for non-member operator
  133.                      functions, at least one of the arguments must be of class
  134.                      type, reference to class, enum type, or reference to enum.
  135.                       The compiler is generating an error for the definition of
  136.                      a operator + function that takes an enum and an int as
  137.                      parameters.
  138. -------------------------------------------------------------------------------
  139. QUAL-IMP  C++FE      Initialization of static reference variables is happening
  140.                      at runtime static initialization instead of at compile
  141.                      time.
  142. -------------------------------------------------------------------------------
  143. PJ14445   C++FE      The preprocessor may generate the invalid error:
  144.                       "The suffix for the floating point constant is not
  145.                      valid."
  146.                       when concatenating two valid tokens together to form a
  147.                      floating point constant.
  148. -------------------------------------------------------------------------------
  149. QUAL-IMP  C++RT      A program that supplies its own version of delete may have
  150.                      had the compiler supplied version called instead of the
  151.                      user version when linking dynamically.
  152. -------------------------------------------------------------------------------
  153. QUAL-IMP  C++RT      Fixed problem where a duplicate symbol error was generated
  154.                      by the linker when a user provided global new() was linked
  155.                      into a program that also called set_new_handler().
  156. -------------------------------------------------------------------------------
  157. PJ14347   CFE        If a variable is first declared as 'static' variable in
  158.                      file scope, then declaration of the same variable name in
  159.                      function scope should refer to the same variable.  This
  160.                      linkage of identifiers does not work properly when /Ti+ is
  161.                      not specified.
  162. -------------------------------------------------------------------------------
  163. PJ14346   CFE        Compiler generated segmented to flat pointer conversion is
  164.                      missing for the following code segment:
  165.                        char * fp;
  166.                        unsigned long l = 0;
  167.                        fp = l < 0
  168.                             ? 0
  169.                             : (char* _Seg16)(void*)(void* _Seg16)l;
  170. -------------------------------------------------------------------------------
  171. PJ14343   CFE        Compiler internal error occurs compiling unusually large
  172.                      program with optimization turned on.
  173. -------------------------------------------------------------------------------
  174. PJ14345   CFE        #pragma margins and /Sg options causes erroneous /Wppc
  175.                      info message when the line ends at the right margin.
  176. -------------------------------------------------------------------------------
  177. PJ14325   CFE        After Invoking the compiler from a network drive with
  178.                      preload (/Tl) enabled, the network drive stays locked.
  179. -------------------------------------------------------------------------------
  180. PJ14329   CFE        In macro expansion, preprocessor mistreats two dots
  181.                      followed by any character as an elipsis.
  182.                        #define test left..right
  183.                       test is expanded to left..ight
  184. -------------------------------------------------------------------------------
  185. QUAL-IMP  CFE        Some #line directives with file names specified are not
  186.                      processed properly by the compiler.
  187. -------------------------------------------------------------------------------
  188. QUAL-IMP  CFE        The compiler is failing to provide a closing double quote
  189.                      (") on the executable name when calling LINK386.  This
  190.                      does not cause a problem with LINK386.EXE, but could cause
  191.                      problems with other linkers.
  192. -------------------------------------------------------------------------------
  193. QUAL-IMP  CFE        When ICC is compiling TEMPINC files, it is possible that
  194.                      compiling one TEMPINC file will update another one and
  195.                      make it out of date.  ICC needs to loop doing TEMPINC
  196.                      compiles until all objects are up to date.
  197. -------------------------------------------------------------------------------
  198. PJ14445   CFE        The preprocessor erroneous issues an error message for the
  199.                      following legal macro expansion:
  200.                       #define MAKEHEX(a) 0x##a
  201.                       float j = MAKEHEX(2e);
  202. -------------------------------------------------------------------------------
  203. PJ14454   CFE        The C compiler generates incorrect code when evaluating
  204.                      the address of an array of array of structure members
  205.                      within another structure, with array index of 0.
  206.                       e.g. for the following structure, the values of
  207.                      &s2.s1[1][0].j and &s2.s1[1]->j are not evaluated
  208.                      properly:
  209.                        struct {
  210.                           int i;
  211.                           struct {
  212.                              int j;
  213.                           } s1[2][3];
  214.                        } s2;
  215. -------------------------------------------------------------------------------
  216. PJ14279   CRT        getcwd() fails intermittently, returning an OS/2 error.
  217. -------------------------------------------------------------------------------
  218. PJ14281   CRT        The spawnx() and execx() families of functions sometimes
  219.                      pass a incorrect parameter list to the child process.
  220. -------------------------------------------------------------------------------
  221. PJ14308   CRT        When a file is opened for low level I/O in text mode, and
  222.                      the last character read from the file is a carriage return
  223.                      ('\r'), the _read() function moves the file pointer back
  224.                      by 1. This causes incorrect results only if the next
  225.                      operation on the file is _write() or _tell().
  226. -------------------------------------------------------------------------------
  227. PJ14456   CRT        The TZ variable in the environment does not support
  228.                      timezones which are not an integral number of hours
  229.                      different from GMT.  The format of the TZ variable has
  230.                      been changed to support this now.  The format is now:
  231.                       SSS[+|-]hh[:mm[:ss]]DDD[,sm,sw,st,em,ew,ed,et,shift]
  232.                       [] indicates optional parameters.
  233.                       Note the addition of the minutes and seconds to the
  234.                      offset.
  235. -------------------------------------------------------------------------------
  236. PJ14455   CRT        On OS/2 2.11, the DosKillThread API cannot kill C library
  237.                      routines that get input from the keyboard.  This works on
  238.                      OS/2 2.0 and 2.1, although it has unpredictable side
  239.                      effects.  The library has been changed to allow this
  240.                      particular use of DosKillThread() to work safely on OS/2
  241.                      2.11.  Using the DosKillThread() API still has
  242.                      unpredictable side effects on OS/2 2.0 and 2.1 (an OS
  243.                      limitation).
  244. -------------------------------------------------------------------------------
  245. QUAL-IMP  SCL        A bug in ostrstream causes program to trap.  The actual
  246.                      bug is inside streambuf's sync().  It tries to put the end
  247.                      of line character into an empty stream buffer.
  248. -------------------------------------------------------------------------------
  249. PJ14427   SCL        Memory is allocated by the iostream library during static
  250.                      initialization, but is not being freed during termination.
  251.                       This causes a memory leak if the iostream functions are
  252.                      statically linked to a DLL which is dynamically loaded and
  253.                      unloaded.
  254. -------------------------------------------------------------------------------
  255. =========================================================================
  256.                CTC0009 is formal Corrective Service
  257. The following fixes are provided in Compiler CS CTC0009
  258. **************************************************************************
  259. FIX/APAR    COMPONENT     PROBLEM_DESCRIPTION
  260. --------------------------------------------------------------------------
  261. PJ13703     CFE           Defining the first token in a program as
  262.                           a character string with the /D option
  263.                           causes an internal compiler error
  264. --------------------------------------------------------------------------
  265. QUAL-IMP    CFE           Label not found message does not
  266.                           indicate which label is not found.
  267. --------------------------------------------------------------------------
  268. QUAL-IMP    CFE           Internal compiler error while generating
  269.                           /Wenu messages for program with 'case'
  270.                           statement outside 'switch' scope.
  271. --------------------------------------------------------------------------
  272. PJ13705     BE            Fixed a parameter passing problem that
  273.                           occurs when the last statement of a
  274.                           function is to a _Pascal function.
  275. --------------------------------------------------------------------------
  276. QUAL-IMP    BE            Allow the optimizer to assign registers
  277.                           a little more efficiently in certain
  278.                           circumstances.
  279. --------------------------------------------------------------------------
  280. PJ13706     BE            A loop that contains a goto to a return
  281.                           could, in rare cases, cause incorrect
  282.                           code generation.
  283. --------------------------------------------------------------------------
  284. PJ12329     CRT           A 16-bit function will get a protection
  285.                           exception if the function has a large
  286.                           automatic storage area.  This problem
  287.                           occurs on secondary threads, and happens
  288.                           because the stack is not committed when
  289.                           the thread begins execution and the
  290.                           16-bit code does not have stack probes.
  291.                           The compiler runtime code that sets up
  292.                           the 16bit stack needs to commit it.
  293. --------------------------------------------------------------------------
  294. PJ13704     CRT           Compiling 16-32 callback funtions with
  295.                           static link results in duplicate references
  296.                           when linking.
  297.                           Reference APAR PJ12507
  298. --------------------------------------------------------------------------
  299. QUAL-IMP    CRT           Now checking if a destructor exists
  300.                           during error recovery in __vec__copy().
  301.                           May have caused traps
  302. =========================================================================
  303.                CTC0008 is informal Corrective Service
  304. The following fixes are provided in Compiler CS CTC0008
  305. *************************************************************************
  306. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  307. -------------------------------------------------------------------------
  308. PJ12307          BE         Cannot access local variables of callback
  309.                             functions within the Debugger.
  310. -------------------------------------------------------------------------
  311.  PJ12325         BE         Incorrect code may be generated for a
  312.                             conditional increment or decrement if the
  313.                             comparison is signed.
  314. -------------------------------------------------------------------------
  315.  PJ12340         BE         The conversion of an address to a segmented
  316.                             address may be incorrectly done if the
  317.                             address involves an index calculation
  318.                             (ie: &array{i-1})
  319. -------------------------------------------------------------------------
  320.  PJ12341         BE         A register used by strncat() could be
  321.                             clobbered under rare circumstances and
  322.                             cause incorrect behaviour.
  323. -------------------------------------------------------------------------
  324.  PJ12376         BE         Fixed an internal problem with the handling
  325.                             of conditional increments with side effects.
  326. -------------------------------------------------------------------------
  327.  PJ12431         BE         Incorrect register selection could cause
  328.                             incorrect results when performing a bitwise
  329.                             AND (&) with a constant.
  330. -------------------------------------------------------------------------
  331.  PJ12507       BE & CRT     Compiling 16 to 32 callback functions with
  332.                             /Gh+ causes a run-time trap.
  333. -------------------------------------------------------------------------
  334.  QUAL-IMP        BE         Incorrect register selection could lead to
  335.                             traps or unexpected results with 32 to 16 to
  336.                             16 to 32 code.
  337. -------------------------------------------------------------------------
  338.  QUAL-IMP        BE         Fixed a problem similarto PJ11975 for
  339.                             conditional decrements.
  340. -------------------------------------------------------------------------
  341.  PJ12567         CRT        Exception handler was not deregistered within
  342.                             heap_check when using /TM+
  343. -------------------------------------------------------------------------
  344.  PJ12326         CFE        If listing is enabled (/Ls, /Li, or /Lj) and
  345.                             the source code contains nested #if, #elif
  346.                             and #ifdef, the compiler might fail with
  347.                             unexpected compiler error.
  348. -------------------------------------------------------------------------
  349.  PJ12327     CFE & C++FE    After compiling programs with preload turned
  350.                             on, sometimes the front-end traps after the
  351.                             compilation is completed.
  352. -------------------------------------------------------------------------
  353.  PJ12477         CFE        The compiler was not checking against
  354.                             possible errors reading the source and
  355.                             header files.
  356. -------------------------------------------------------------------------
  357.  PJ12490         CFE        ICC will be changed to ignore /Si+ option
  358.                             when /Fb+ option is specified.
  359. -------------------------------------------------------------------------
  360.  QUAL-IMP        CFE        Pre-load program was not checking the return
  361.                             codes from some API calls.
  362. -------------------------------------------------------------------------
  363.  QUAL-IMP        CFE        If the compiler is first invoked from a
  364.                             directory with preload option enabled, while
  365.                             the compiler stays loaded, the user is
  366.                             prevented from removing the directory.
  367.                             This is inconvenient for the user.
  368. -------------------------------------------------------------------------
  369.  QUAL-IMP        CFE        Compiling program with function calls with
  370.                             very large number of arguments causes
  371.                             compiler to trap.
  372. -------------------------------------------------------------------------
  373.  PJ12378         C++FE      If a class is _Exported, then a member
  374.                             function is subsequently defined to be
  375.                             "inline", the compiler still tells the linker
  376.                             to export the function.  This causes an
  377.                             "undefined external" linker error.
  378. -------------------------------------------------------------------------
  379.  PJ12388         C++FE      A C++ program compiled with optimization
  380.                             will cause the front-end to trap if a "const
  381.                             int" static class data member is referenced
  382.                             with explicit class qualification.
  383. -------------------------------------------------------------------------
  384.  PJ12427         C++FE      Erroneous conversion error between typedefs,
  385.                             friend functions and the use of the friend
  386.                             function.
  387. -------------------------------------------------------------------------
  388.  PJ12445         C++FE      Compiler trap processing declaration of const
  389.                             var symbol previously used without being
  390.                             declared.
  391. -------------------------------------------------------------------------
  392.  PJ12479         C++FE      Preprocessor trap when processing a macro
  393.                             defined to NULL
  394. -------------------------------------------------------------------------
  395.  PJ12492         C++FE      When one anonymous union is nested inside
  396.                             another in a C++ program, incorrect addresses
  397.                             are generated for the union members.
  398. -------------------------------------------------------------------------
  399.  QUAL-IMP        C++FE      Fixed #pragma page() and #pragma skip() so
  400.                             that a listing file will not be generated if
  401.                             the listing option is not activated on the
  402.                             command line.
  403. -------------------------------------------------------------------------
  404.  QUAL-IMP        C++FE      If the argument list of a macro is supplied
  405.                             via another macro, the macro might not be
  406.                             expanded as expected.
  407.                             Note: Corresponding CFE fix was implemented
  408.                                   in CTC0006 as PJ11929
  409. -------------------------------------------------------------------------
  410.  QUAL-IMP        C++FE      Wrapper <demangle.h> with #pragma pack
  411. -------------------------------------------------------------------------
  412.  PJ12328         UTIL       When a new C Set++ project (ie. no compiler
  413.                             options have been set), is invoked under the
  414.                             build action on the WorkFrame, the compiler
  415.                             DLL will return the default action.  The
  416.                             default action is not to generate any .W
  417.                             files.
  418. -------------------------------------------------------------------------
  419.  PJ12522         UTIL       Munch was giving the error "assert
  420.                             <line_number> invalid object record." This
  421.                             error was incorrectly being produced for
  422.                             valid object record formats.
  423. =========================================================================
  424.                CTC0007 is informal Corrective Service
  425. The following fixes are provided in Compiler CS CTC0007 and later CS
  426. *************************************************************************
  427. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  428. -------------------------------------------------------------------------
  429.  PJ11951       BE & CFE     The optimizer misses a chance to inline
  430.                             certain C++ functions.
  431. -------------------------------------------------------------------------
  432.  PJ11979         CFE        In source code:
  433.                             int main (void) {
  434.                                 int a, b; b = 1; a = 2; return 0;
  435.                             }
  436.                             The symbols for a and b are generated in a
  437.                             different order depending on whether /Ti is
  438.                             on.  They should be generated in the same
  439.                             way no matter what the /Ti setting is.
  440. -------------------------------------------------------------------------
  441.  QUAL-IMP        CFE        When /La compiler option is used, some of the
  442.                             structures and unions are incorrectly shown
  443.                             in the listing
  444. -------------------------------------------------------------------------
  445.  PJ12108         CRT        Library fixes made to solve problems when
  446.                             debug allocated objects were freed with
  447.                             non-debug routines and vice-versa.
  448.                             In addition the environment variable
  449.                             DDE4_HEAP_SKIP was added whereby the user can
  450.                             skip the _heap_check that occur when debug
  451.                             routines are invoked. The syntax is as
  452.                             follows:
  453.  
  454.                             set DDE4_HEAP_SKIP=increment,starting
  455.  
  456.                             where: 'increment' is how often a
  457.                             heap_check will be invoked, and 'starting'
  458.                             (which is optional) is how many calls to
  459.                             debug memory routines must occur before
  460.                             heap_checks are done.
  461.  
  462.                             Example: DDE4_HEAP_SKIP=100,1000
  463.                             will perform a heap_check after 1000 debug
  464.                             memory routines have been called and on every
  465.                             100 calls after that.
  466.  
  467.                             Example: DDE4_HEAP_SKIP=50
  468.                             will perform a heap_check on every 50 calls
  469.                             made to a debug memory routine
  470.  
  471.                             Note: If DDE4_HEAP_SKIP is not set in the
  472.                             environment then the default will be to
  473.                             invoke heap_check on every call to a debug
  474.                             memory routine.
  475. =========================================================================
  476.                CTC0006 is informal Corrective Service
  477. The following fixes are provided in Compiler CS CTC0006 and later CS
  478. *************************************************************************
  479. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  480. -------------------------------------------------------------------------
  481.  PJ11896         BE         Optimization Problem: A for loop that
  482.                             functions like a memcpy() could be
  483.                             incorrectly optimized if the source of the
  484.                             copy is a struct member.
  485. -------------------------------------------------------------------------
  486.  PJ11952         BE         Optimization Problem: An internal problem
  487.                             with expression simplification could result
  488.                             in incorrect code generation.
  489. -------------------------------------------------------------------------
  490.  PJ11953         BE         Optimization Problem: Within an inner switch
  491.                             of nested switches, a goto jumping to a break
  492.                             for the outer switch could be turned into a
  493.                             break for the inner switch.
  494. -------------------------------------------------------------------------
  495.  PJ11975         BE         Optimization Problem: Statements of the form:
  496.                             "if (f1 < f2) i++", where f1 and f1 have
  497.                             floating-point datatypes, could cause a
  498.                             compile-time exception in the BE.
  499. -------------------------------------------------------------------------
  500.  QUAL-IMP        BE         Optimization Problem: MOD operations could
  501.                             generate results of the wrong sign if both
  502.                             operands are negative.  Similar results could
  503.                             occur for MOD and DIV by a negative power of
  504.                             2.
  505. -------------------------------------------------------------------------
  506.  QUAL-IMP        BE         Fixed a small problem with the generated
  507.                             assembler listing file - an incorrect symbol
  508.                             could be used.
  509. -------------------------------------------------------------------------
  510.  PJ11872         C++FE      Fixed a trap in the C++ frontend.  The trap
  511.                             occurred when we tried to compile a source
  512.                             file that contained a class that had 2
  513.                             declarations of the same friend function and
  514.                             a typedef for that function.
  515. -------------------------------------------------------------------------
  516.  PJ11887         C++FE      Fixed a trap when compiling code with a
  517.                             definition of a function with _Far16 _Pascal
  518.                             linkage.
  519. -------------------------------------------------------------------------
  520.  PJ11981         C++FE      If a conversion function yields a reference
  521.                             to a class with constructors, and a temporary
  522.                             is built from the result of that conversion,
  523.                             the temporary is initialized by bitwise
  524.                             copying instead of by calling its copy
  525.                             constructor.
  526. -------------------------------------------------------------------------
  527.  PJ11982         C++FE      The compiler will deliberately not inline
  528.                             some functions if doing so would break C++
  529.                             exception handling.  However, when exception
  530.                             handling is disabled by /Gx+, the compiler
  531.                             still fails to inline those functions.
  532. -------------------------------------------------------------------------
  533.  PJ11983         C++FE      A complex expression containing more than one
  534.                             conditional subexpression (i.e. the  x ? y :
  535.                             z construct) may be generated such that the
  536.                             subexpressions are evaluated in the wrong
  537.                             order.
  538. -------------------------------------------------------------------------
  539.  PJ11984         C++FE      An inline function consisting of a single
  540.                             return statement that returns a
  541.                             type-converted parameter may be incorrectly
  542.                             inlined.
  543. -------------------------------------------------------------------------
  544.  PJ11881         CFE        Sizeof typedef within sizeof sometimes
  545.                             returns arbitrary value.
  546. -------------------------------------------------------------------------
  547.  PJ11929         CFE        If the argument list of a macro is supplied
  548.                             via another macro, the macro might not be
  549.                             expanded as expected.
  550. -------------------------------------------------------------------------
  551.  PJ11889         CRT        If the function that executes when a thread
  552.                             begins execution calls 16-bit code, then
  553.                             EDCThunkProlog is called from within the
  554.                             function prolog.  EDCThunkProlog tries to
  555.                             access data that is outside the stack frame,
  556.                             and since this is the first frame on the
  557.                             stack, that storage is not allocated to the
  558.                             stack.  A protection exception occurs.
  559. =========================================================================
  560.                CTC0005 is informal Corrective Service
  561. The following fixes are provided in Compiler CS CTC0005 and later CS
  562. *************************************************************************
  563. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  564.  ------------------------------------------------------------------------
  565.  PJ11625         BE         Optimization Problem: Compiling source that
  566.                             contains floating-point code could cause a
  567.                             compile-time trap in the backend.
  568.  ------------------------------------------------------------------------
  569.  PJ11688         BE         Optimization Problem: Statements of the form
  570.                             "do { i++; } while (condition); i--;" could
  571.                             be incorrectly optimized.
  572.  ------------------------------------------------------------------------
  573.  PJ11692         BE         Incorrect debug info could be generated for a
  574.                             data member of a class with type "char *
  575.                             const".
  576.  ------------------------------------------------------------------------
  577.  PJ11695         BE         Optimization Problem: Instruction scheduling
  578.                             could clobber the result of constant multiply
  579.                             across a call.
  580.  ------------------------------------------------------------------------
  581.  PJ11696         BE         Optimization Problem: Using an int variable
  582.                             as an array of chars within a loop could
  583.                             result in incorrect code generation.
  584.  ------------------------------------------------------------------------
  585.  PJ11697         BE         Optimization Problem: Statements of the form
  586.                             "while (cond) { if (--i) { i++; break; } }"
  587.                             could be incorrectly optimized.
  588.  ------------------------------------------------------------------------
  589.  PJ11698         BE         Optimization Problem: If the "count" paramter
  590.                             of strncat() is a builtin string function,
  591.                             incorrect code could be generated.
  592.  ------------------------------------------------------------------------
  593.  PJ11699         BE         Optimization Problem: Tail calling a _Pascal
  594.                             function from another function could result
  595.                             in an exception at run-time.
  596.  ------------------------------------------------------------------------
  597.  PJ11701         BE         strncat() could copy one byte even if "count"
  598.                             parameter is a variable of value 0.
  599.  ------------------------------------------------------------------------
  600.  QUAL-IMP        BE         Optimization Problem: Adding two negative
  601.                             numbers and then negating the result could be
  602.                             optimized incorrectly.
  603.  ------------------------------------------------------------------------
  604.  QUAL-IMP        BE         Without optimization, an expression of the
  605.                             form "*((char*)&array[index]+i)" could
  606.                             generate an incorrect OBJ even though the
  607.                             ASM is correct.
  608.  ------------------------------------------------------------------------
  609.  PJ11491         C++FE      new() is not returning a valid pointer when
  610.                             allocating a 0-sized array.
  611.  ------------------------------------------------------------------------
  612.  PJ11492         C++FE      The delete() operator for an object was not
  613.                             being called with the debug parameters when
  614.                             that object was being deleted because its
  615.                             constructor threw an exception.
  616.  ------------------------------------------------------------------------
  617.  PJ11574         C++FE      Reduce the long link times and large swapper
  618.                             file created when linking C++ programs that
  619.                             contain templates.
  620.  ------------------------------------------------------------------------
  621.  PJ11575         C++FE      If a virtual base class appears more than
  622.                             once in the class hierarchy, then one copy of
  623.                             if may be initialized several times and the
  624.                             other copies not initialized.
  625.  ------------------------------------------------------------------------
  626.  PJ11584         C++FE      The compiler may crash when generating debug
  627.                             information for a class that has no
  628.                             user-supplied nor compiler-generated inline
  629.                             functions.  This is rare, since there are
  630.                             usually some compiler-generated ones.
  631.  ------------------------------------------------------------------------
  632.  PJ11585         C++FE      If a C++ compilation includes definitions of
  633.                             classes that contain virtual functions, all
  634.                             of which are inline functions, the compiler
  635.                             will generate those classes and functions
  636.                             whether or not they are actually used.  This
  637.                             fix generates them only when necessary
  638.  ------------------------------------------------------------------------
  639.  QUAL-IMP        C++FE      A C++ program containing a brace-enclosed
  640.                             statement block outside of a function body
  641.                             crashes the front-end when compiled with
  642.                             /Wuse+ if there is an unused label define
  643.                             in the block
  644.  ------------------------------------------------------------------------
  645.  QUAL-IMP        C++FE      A goto within a catch block is incorrectly
  646.                             diagnosed as a jump into the catch block,
  647.                             which is illegal since it bypasses
  648.                             initialization of the catch variable
  649.  ------------------------------------------------------------------------
  650.  QUAL-IMP        C++RT      Fixed memory leak that occurred when memory
  651.                             is allocated for an object however, it is not
  652.                             constructed because it's constructor threw an
  653.                             exception.
  654.  ------------------------------------------------------------------------
  655.  PJ11702         CFE        The compiler is not recognizing a constant
  656.                             expression properly when initialization
  657.                             involves an array within a structure within
  658.                             an array of structures
  659.  ------------------------------------------------------------------------
  660.  PJ11703         CFE        Using CSD 1 of C Set ++, the test case is
  661.                             expected to have a warning message, but the
  662.                             compiler should not be trapping.
  663.  ------------------------------------------------------------------------
  664.  PJ11686         CRT        The problem lies in reading across memory
  665.                             blocks.  The code did not take into account
  666.                             of the number of characters read in from the
  667.                             previous blocks and hence reading more than
  668.                             necessary.
  669.  ------------------------------------------------------------------------
  670.  PJ11687         CRT        AL register will now be set by the library
  671.                             when making a call to DosGetMessage.
  672. =========================================================================
  673.                CTC0004 is informal Corrective Service
  674. The following fixes are provided in Compiler CS CTC0004 and later CS
  675. *************************************************************************
  676. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  677.  ------------------------------------------------------------------------
  678.  PJ11127         BE         Optimization Problem: Multiplying a variable
  679.                             by a constant and the adding or subtracting 1
  680.                             could result in incorrect code generation.
  681.  ------------------------------------------------------------------------
  682.  PJ11128         BE         Optimization Problem: An internal problem
  683.                             could result in traps or unexpected results
  684.                             with 32 to 16 or 16 to 32 code.
  685.  ------------------------------------------------------------------------
  686.  PJ11129         BE         Optimization Problem: In rare circumstances,
  687.                             doing arithmetic with shorts could result in
  688.                             traps or unexpected results.
  689.  ------------------------------------------------------------------------
  690.  PJ11134         BE         Optimization Problem: The result of a right
  691.                             shift of a negative value, though
  692.                             implementation defined, could differ at /O-
  693.                             and /O+.
  694.  ------------------------------------------------------------------------
  695.  PJ11135         BE         Optimization Problem: The backend could abort
  696.                             with fatal error EDC4005 in intermediate file
  697.                             ROOPT when optimizing an if-then-else.
  698.  ------------------------------------------------------------------------
  699.  PJ11137         BE         Optimization Problem: Expressions of the
  700.                             form: "*(float *) &var", where var is an int,
  701.                             could cause a compile-time back-end trap.
  702.  ------------------------------------------------------------------------
  703.  PJ11138         BE         Optimization Problem: An internal problem
  704.                             occuring when compiling floating-point code
  705.                             could cause a compile-time back-end trap.
  706.  ------------------------------------------------------------------------
  707.  PJ11139         BE         Incorrect code could be generated when
  708.                             negating a char variable and then storing the
  709.                             result into an int variable.
  710.  ------------------------------------------------------------------------
  711.  PJ11140         BE         Optimization Problem: Statements of the form:
  712.                             "x--; if (cond) x += 2;" may be incorrectly
  713.                             optimized.
  714.  ------------------------------------------------------------------------
  715.  PJ11141         BE         Run-time traps could occur in code using 16
  716.                             to 32 callback functions if the code crossed
  717.                             a 64K boundary.
  718.  ------------------------------------------------------------------------
  719.  PJ11142         BE         When using strncat(), an extra NULL was being
  720.                             appended to the end of the destination string
  721.                             if the length of the source string was less
  722.                             than "n".
  723.  ------------------------------------------------------------------------
  724.  PJ11143         BE         Optimization Problem: Statements of the form:
  725.                             "if (!x) {y = 0;} else {y = 1;}" could cause
  726.                             a compile-time trap if x is a float-point
  727.                             type.
  728.  ------------------------------------------------------------------------
  729.  QUAL-IMP        BE         Under certain conditions, the optimizer could
  730.                             leave around some useless LEA instructions.
  731.                             This has now been fixed.
  732.  ------------------------------------------------------------------------
  733.  QUAL-IMP        BE         When exporting callback functions, an
  734.                             incorrect symbol could be used, resulting in
  735.                             link errors.
  736.  ------------------------------------------------------------------------
  737.  PJ11176         CFE        Compiler generates incorrect code for
  738.                             referencing array of array in structure
  739.                             with array index of 0.
  740.                             ie:  a.b[i][0].c = 1;  a.b[i]->c = 2;
  741.  ------------------------------------------------------------------------
  742.  PJ11177         CFE        If a variable is first declared and then
  743.                             initialized both with a typedef type and
  744.                             a qualifier, the compiler generates incorrect
  745.                             code.
  746.                             ie:  const typedef_name var;
  747.                                  const typedef_name var = 0;
  748.  ------------------------------------------------------------------------
  749.  PJ11179         CFE        When initializing a member of a structure
  750.                             casting the member to _Seg16 pointer causes
  751.                             unexpected compiler error.
  752.  ------------------------------------------------------------------------
  753.  PJ11180         CFE        When #pragma handler is specified for some
  754.                             functions, the compiler randomly generates
  755.                             incorrect code that exports some of those
  756.                             functions.
  757.  ------------------------------------------------------------------------
  758.  PJ11181         C++FE      The following message is produced when both
  759.                             sides of a conditional expression are the
  760.                             same:
  761.                             recoverable EDC4005: Error occured in
  762.                                         intermediate file RBEXPR(4902)
  763.  ------------------------------------------------------------------------
  764.  PJ11182         C++FE      An initialized function-scope static variable
  765.                             will cause the C++ front end to GPF if a
  766.                             compiler temporary is required when
  767.                             evaluating the initializing expression.
  768.  ------------------------------------------------------------------------
  769.  PJ11183         CRT        FILE struct members violate user name space.
  770.  ------------------------------------------------------------------------
  771.  PJ11185         CRT        MATHERR not handling domain errors.
  772. =========================================================================
  773.                CTC0003 is informal Corrective Service
  774. The following fixes are provided in Compiler CS CTC0003 and later CS
  775. *************************************************************************
  776. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  777.  ------------------------------------------------------------------------
  778.  PJ10704         BE         Incorrect debug information could cause IPMD
  779.                             to trap in DDE4BE32.DLL while debugging C++
  780.                             programs.
  781.  ------------------------------------------------------------------------
  782.  PJ10705         BE         Incorrect debug information for const member
  783.                             functions could cause expression evaluation
  784.                             problems in IPMD.
  785.  ------------------------------------------------------------------------
  786.  PJ10706         BE         Incorrect debug information could cause IPMD
  787.                             to hang when debugging large programs.
  788.  ------------------------------------------------------------------------
  789.  QUAL-IMP        BE         Incorrect debug information could confuse
  790.                             IPMD while debugging C++ programs.
  791.  ------------------------------------------------------------------------
  792.  PJ10461         CRT        Serialization code used in the runtime
  793.                             library may cause system traps. This
  794.                             usually occurs when one of the thread
  795.                             unexpectedly terminates.
  796.  ------------------------------------------------------------------------
  797.  PJ10703         C++RTL     CPPFILT utility truncates the mangled
  798.                             function names if it is greater than 233
  799.                             characters.
  800. =========================================================================
  801.                CTC0002 is formal Corrective Service
  802. The following fixes are provided in Compiler CS CTC0002 and later CS
  803. *************************************************************************
  804. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  805.  ------------------------------------------------------------------------
  806.  PJ10544          BE        Optimization Problem: Compiling with /G5 /Ms
  807.                             may optimize SUB ESP,4 into PUSH EAX at
  808.                             inappropriate places.
  809.  ------------------------------------------------------------------------
  810.  PJ10545          BE        Incorrect code may be generated when copying
  811.                             structures whose size is less than 12 bytes.
  812.  ------------------------------------------------------------------------
  813.  PJ10546          BE        Optimization Problem: An internal problem
  814.                             during common subexpression elimination could
  815.                             cause a compile-time exception.
  816.  ------------------------------------------------------------------------
  817.  PJ10547          BE        Optimization Problem: Incorrect code
  818.                             generation may result when optimizing a loop
  819.                             that contains a goto which acts like a break.
  820.  ------------------------------------------------------------------------
  821.  PJ10549          BE        Optimization Problem: Instruction scheduling
  822.                             may move instructions out of the protected
  823.                             area between _disable and _enable.
  824.  ------------------------------------------------------------------------
  825.  PJ10550          BE        Optimization Problem: Returning a floating
  826.                             point value as an integer may cause problems
  827.                             on machines without FP co-processors when
  828.                             compiled with /O and either /G4 or /G5.
  829.  ------------------------------------------------------------------------
  830.  PJ10552          BE        The enum data offset field of a COMDAT placed
  831.                             in a user segment was being set to a non-zero
  832.                             value.
  833.  ------------------------------------------------------------------------
  834.  PJ10553          BE        Optimization Problem: An internal problem
  835.                             could cause a compile-time trap when
  836.                             compiling with /O+ /Gf+.
  837.  ------------------------------------------------------------------------
  838.  PJ10556          BE        The BE was not growing the number of file
  839.                             handles available.  This caused a
  840.                             compile-time exception when the BE ran out of
  841.                             file handles.
  842.  ------------------------------------------------------------------------
  843.  PJ10557          BE        Optimization Problem: Calling a 32-bit
  844.                             function from the last statement of a _Far16
  845.                             _Pascal function could be compiled
  846.                             incorrectly.
  847.  ------------------------------------------------------------------------
  848.  PJ10558          BE        Optimization Problem: The incorrect register
  849.                             may be cleared when returning 0.
  850.  ------------------------------------------------------------------------
  851.  PJ10559          BE        A constant left-shifted by another constant
  852.                             may be folded incorrectly when compiled with
  853.                             /Gi.
  854.  ------------------------------------------------------------------------
  855.  PJ10560          BE        Optimization Problem: Tail call optimization
  856.                             was being incorrectly applied to a call to a
  857.                             pascal linkage function from a system linkage
  858.                             function.
  859.  ------------------------------------------------------------------------
  860.  QUAL-IMP         BE        Optimization Problem: Bad register selection
  861.                             around switch statements could cause
  862.                             incorrect code generation.
  863.  ------------------------------------------------------------------------
  864.  QUAL-IMP         BE        With C++, returning a complex structure from
  865.                             a function whose destructor has been inlined
  866.                             could be compiled incorrectly.
  867.  ------------------------------------------------------------------------
  868.  QUAL-IMP         BE        An internal problem could cause a
  869.                             compile-time trap when compiling, with /Gr
  870.                             /Rn, a _Far32 _Pascal function that returns a
  871.                             pointer.
  872.  ------------------------------------------------------------------------
  873.  PJ10478         CFE        The preprocessor was getting an internal
  874.                             compiler error for certain macro expansion.
  875.  ------------------------------------------------------------------------
  876.  PJ10477         CFE        If a source/header file contains null
  877.                             characters, the compiler gets an internal
  878.                             compiler error and may result in a huge
  879.                             swapper that may bring down your system.
  880.  ------------------------------------------------------------------------
  881.  QUAL-IMP        CFE        Error message was being erroneously issued
  882.                             when '_Export" keyword or '#pragma export'
  883.                             are specified more than once for the same
  884.                             object.
  885.  ------------------------------------------------------------------------
  886.  PJ10566       C++FE        Conversion function results in an
  887.                             unconstructed temporary. No constructor was
  888.                             called for the temporary object.
  889.  ------------------------------------------------------------------------
  890.  PJ10567       C++FE        When passing a class as a by value parameter
  891.                             a temporary is not used and the class is
  892.                             passed by reference.
  893.  ------------------------------------------------------------------------
  894.  PJ10568       C++FE        Member friend incorrectly inherits function
  895.                             linkage from linkage specifier.
  896.  ------------------------------------------------------------------------
  897.  PJ10569       C++FE        Invalid Error message EDC3458 produced.
  898.  ------------------------------------------------------------------------
  899.  PJ10570       C++FE        GPF calling virtual member function of a
  900.                             template class when the module uses #pragma
  901.                             data_seg.
  902.  ------------------------------------------------------------------------
  903.  PJ10571       C++FE        Invalid error for postfix operator ++ on a
  904.                             reference in a conditional expression.
  905.  ------------------------------------------------------------------------
  906.  PJ10572       C++FE        Invalid error message EDC3276 and GPF when
  907.                             compiling a conditional expression.
  908.  ------------------------------------------------------------------------
  909.  QUAL-IMP      C++FE        Runtime GPF accessing static data member
  910.                             at location 0.
  911.  ------------------------------------------------------------------------
  912.  QUAL-IMP      C++FE        /Ms causes a runtime GPF when exception
  913.                             handling is used.
  914.  ------------------------------------------------------------------------
  915.  PJ10462         CRT        Thunk Prologue incorrectly probes stack
  916.                             causing system traps. This may occur
  917.                             with any 32-16 calls not in thread one.
  918.  ------------------------------------------------------------------------
  919.  QUAL-IMP        CRT        Free not handling debug object. An debug
  920.                             memory object (as allocated by the debug
  921.                             memory routine) can cause system trap
  922.                             after it is passed to the regular free()
  923.                             function for freeing.
  924.  ------------------------------------------------------------------------
  925.  QUAL-IMP        CRT        Spawn/Exec family functions should ignore
  926.                             net error. If the net error is not ignored,
  927.                             the search on the PATH stops prematurely,
  928.                             which may cause spawns/exec functions not to
  929.                             find any program whose path appears
  930.                             after the net work path causing the error.
  931.  ------------------------------------------------------------------------
  932.  QUAL-IMP       UTIL        Compiler dialog did not parse a file when the
  933.                             file contains a '//' comment.  It ignored
  934.                             lines after the '//' character until a blank
  935.                             line is reached.
  936.  ------------------------------------------------------------------------
  937.  QUAL-IMP       UTIL        Dialog did not free up memory when saving
  938.                             or retrieving information to/from the project
  939.                             file extended attribute.
  940. =========================================================================
  941.                CTC0001 is informal Corrective Service
  942. The following fixes are provided in Compiler CS CTC0001 and later CS
  943. *************************************************************************
  944. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  945.  ------------------------------------------------------------------------
  946.  PJ09575        DOC         Hitting Ctrl H in EPM for contextual help
  947.                             did not work for printf or scanf.  A change
  948.                             was made in the DDE4CLIB.NDX file..
  949.  ------------------------------------------------------------------------
  950.  QUAL-IMP       ICC         When /Fa compilation switch was used to
  951.                             create assembler file, and a template file
  952.                             was compiled, the compiler trapped.
  953.  ------------------------------------------------------------------------
  954.  QUAL-IMP       ICC         Added the description of /Tm option to ICC
  955.                             help.
  956.  ------------------------------------------------------------------------
  957.  PJ09573        FE          Fixed the compiler to disallow illegal
  958.                             initialization of two-dimensional array
  959.                             of char with character string without braces.
  960.  ------------------------------------------------------------------------
  961.  PJ09574        FE          Structure initialization failed with an
  962.                             extra set of braces.
  963.  ------------------------------------------------------------------------
  964.  QUAL-IMP       FE          Usage of _Export keyword caused the compiler
  965.                             to fail.
  966.  ------------------------------------------------------------------------
  967.  QUAL-IMP      UTIL         Beta project causes Workframe to trap.
  968.  ------------------------------------------------------------------------
  969.  QUAL-IMP      UTIL         Update English panels to fix a Japanese
  970.                             VGA screen.
  971.  ------------------------------------------------------------------------
  972.  QUAL-IMP      UTIL         Remove the minimize capability of the
  973.                             notebook dialog.
  974.  ------------------------------------------------------------------------
  975.  QUAL-IMP      UTIL         No keyboard focus when the notebook dialog
  976.                             first appears.
  977.  ------------------------------------------------------------------------
  978.  QUAL-IMP      UTIL         Incorrect focus when Alt key is pressed
  979.                             inside a dialog.
  980.  ------------------------------------------------------------------------
  981.  QUAL-IMP      UTIL         /Xc should not generate any command line
  982.                             include paths.
  983.  ------------------------------------------------------------------------
  984.  QUAL-IMP      C++FE        The /Ms option is changing the linkage of
  985.                             internally declared compiler functions.
  986.                             This can result in runtime traps when using
  987.                             memory management or C++ exception handling.
  988.  ------------------------------------------------------------------------
  989.  QUAL-IMP      C++FE        The linker fails when using /ND to rename
  990.                             a data segment.  The compiler is generating
  991.                             bad code for partially initialized
  992.                             structures.
  993.  ------------------------------------------------------------------------
  994.  QUAL-IMP      C++FE        Using the compiler options /La or /Lb causes
  995.                             the compiler to trap.
  996.  ------------------------------------------------------------------------
  997.  PJ09576       C++FE        Linking a program that contains templates
  998.                             causes an invalid error to be generated by
  999.                             lib.exe.  The error is "LIB0007: Error :
  1000.                             Unable to open D:\00900000.6.OBJ"
  1001.  ------------------------------------------------------------------------
  1002.  PJ09577       C++FE        Large program with many template functions,
  1003.                             (more than 1023), traps at runtime.
  1004.  ------------------------------------------------------------------------
  1005.  PJ09578       C++FE        When linking programs that contain templates
  1006.                             and object files that were generated by TASM
  1007.                             the message: "Unknown Record Type {ox..},
  1008.                             offset {..} is generated.
  1009.  ------------------------------------------------------------------------
  1010.  PJ09579       C++FE        The compiler is incorrectly resolving to a
  1011.                             function template instead of using a
  1012.                             previously declared member function.
  1013.  ------------------------------------------------------------------------
  1014.  PJ09580       C++FE        Object destructors are not always run after
  1015.                             a throw statement.
  1016.  ------------------------------------------------------------------------
  1017.  PJ09581       C++FE        Compiling code that uses _Far16 and _Pascal
  1018.                             keywords causes an internal compiler error:
  1019.                             "Exception #C0000005: 30751 occurred in
  1020.                             file .., function .."
  1021.  ------------------------------------------------------------------------
  1022.  QUAL-IMP      C++RT        Incorrectly handling exceptions in multiple
  1023.                             runtime environments.
  1024.  ------------------------------------------------------------------------
  1025.  PJ09568         BE         Compiling source files with the same names
  1026.                             may result in conflicting BSS static areas.
  1027.  ------------------------------------------------------------------------
  1028.  PJ09570         BE         Optimization Problem: Incorrect code could be
  1029.                             generated when the result of a comparison is
  1030.                             subtracted from a variable.
  1031.  ------------------------------------------------------------------------
  1032.  PJ09571         BE         The debug info could become corrupted in very
  1033.                             large files which results in only assembler
  1034.                             view being available within IPMD.
  1035.  ------------------------------------------------------------------------
  1036.  PJ09572         BE         Optimization Problem: An internal problem
  1037.                             during loop optimizations could cause a
  1038.                             compile-time exception in the back-end.
  1039.  ------------------------------------------------------------------------
  1040.  PJ09569         BE         Optimization Problem: Incorrect code could be
  1041.                             produced for loops ending with an
  1042.                             if-then-else where the last statement of the
  1043.                             else is a break.
  1044.  ------------------------------------------------------------------------
  1045.  QUAL-IMP        BE         Optimization Problem: An internal problem in
  1046.                             store removal could cause incorrect code.
  1047.  ------------------------------------------------------------------------
  1048.  QUAL-IMP        BE         Optimization Problem: An internal problem
  1049.                             may cause a compile-time exception in the
  1050.                             back-end.
  1051.  ------------------------------------------------------------------------
  1052.  QUAL-IMP        BE         Incorrect code generation for _Far16 _Pascal
  1053.                             functions that return floating-point types
  1054.                             could cause a run-time exception.
  1055.  ------------------------------------------------------------------------
  1056.  QUAL-IMP        BE         Optimization Problem: An internal problem,
  1057.                             when compiling with /Ti+, may cause incorrect
  1058.                             code generation for breaks within loops.
  1059.  ------------------------------------------------------------------------
  1060.  QUAL-IMP        BE         Optimization Problem: The optimizer was
  1061.                             incorrectly folding (0 / x) and (0 % x).
  1062.  ------------------------------------------------------------------------
  1063.  QUAL-IMP        BE         Casting a floating-point value to int and
  1064.                             then comparing the result to another int that
  1065.                             was previously cast from a floating-point
  1066.                             value may produce incorrect results.
  1067. =========================================================================
  1068.